package com.zzz.third;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

/*
 * @author zzr
 * @date: 2025/07/10  00:05
 * @description:读入n， 必,给出n个数a[1],a[2],.....,a[n],
 * 求最小的区间|l，r]，
 * 使a|l+ a|l+ 1]+.....+ ar≥ x，若存在相同长度区间，输出最小的那个
 */
public class Demo2 {
    public static void main(String[] args) throws IOException {
        // 高效输入： BufferedReader + StringTokenizer
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 用 StringTokenizer 分割行中空格
        String line = br.readLine(); // 读这一行
        StringTokenizer st = new StringTokenizer(line); // 分割成 9 个 token
        int n = Integer.parseInt((st.nextToken()));
        int x = Integer.parseInt((st.nextToken()));

        int[] a = new int[n];
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            a[i] = Integer.parseInt((st.nextToken()));
        }

        // 处死话互动窗口的左边界
        int left = 0;
        // 记录当前窗口内元素的和
        int sum = 0;
        // 初始化最小窗口长度为最大整数值
        int minLen = Integer.MAX_VALUE;
        // 记录最小窗口的起始和结束索引
        int resL = 0;
        int resR = 0;

        // 右指针遍历数组
        for (int right = 0; right < n; right++) {
            // 将当前右指针指向的元素，放入窗口和中
            sum += a[right];

            // 当窗口和大于等于目标值 x 的时候，缩小窗口
            while (sum >= x) {
                // 计算当前窗口的长度
                int currentLent = right - left + 1;
                // 如果当前窗口长度更短，或者长度相同，但起始索引更小
                // 则更新最小窗口信息
                if (currentLent < minLen || (currentLent == minLen && left < resL)) {

                    minLen = currentLent;
                    resL = left;
                    resR = right;
                }
                // 缩小窗口左边界，同时更新窗口和
                sum -= a[left];
                left++;
            }
        }
        System.out.println((resL + 1) + " " + (resR + 1));
    }
}

